local Class = require('lua.lang.Class')

--- @class TokenKind : Class
--- @field name string
local TokenKind = Class {}

--- @param name string
function TokenKind:new(name)
	--- @type TokenKind
	local o = {}
	o.name = name
	return setmetatable(o, TokenKind)
end

TokenKind.Comment = TokenKind:new('Comment')
TokenKind.WhiteSpace = TokenKind:new('WhiteSpace')
TokenKind.Eof = TokenKind:new('Eof')
TokenKind.KeyWord = TokenKind:new('KeyWord')
TokenKind.Identifier = TokenKind:new('Identifier')
TokenKind.Number = TokenKind:new('Number')
TokenKind.String = TokenKind:new('String')
TokenKind.Symbol = TokenKind:new('Symbol')

return TokenKind